<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    li {
        list-style: none;
    }

    [v-cloak] {
        display: none;
    }
</style>

<body>
<div id="app" v-cloak>
    <!-- 1：直接操作 -->
    <h1>{{firstName}} {{lastName}} </h1>
    <!-- 2：methods对属性操作 多次使用，调用多次，没有缓存。--->
    <h1>{{getFullName()}}</h1>
    <h1>{{getFullName()}}</h1>
    <h1>{{getFullName()}}</h1>
    <h1>{{getFullName()}}</h1>
    <!-- 3：计算属性，多次使用，只调用一次，因为有缓存。在发生修改的时候重新调用-->
    <h1>{{fullName}}</h1>
    <h1>{{fullName}}</h1>
    <h1>{{fullName}}</h1>
    <h1>{{fullName}}</h1>
    <button @click="fullName = 'JackeyLove'">修改计算属性值</button>

</div>
</body>
<script src="../js/http_cdn.bootcdn.net_ajax_libs_vue_2.6.6_vue.js"></script>
<script>
    new Vue({
        el: "#app",
        data: {
            firstName: "Dowson",
            lastName: "Jack",
        },
        methods: {
            getFullName() {
                console.log("getFullName方法")
                return this.firstName + " " + this.lastName
            }
        },
        computed: {
            fullName: {
                get() {
                    console.log("fullName get方法")
                    return this.firstName + " " + this.lastName
                },
                set(val) {
                    console.log("fullName set方法")
                    return this.firstName = val
                }
            }
        },
    })
</script>

</html>
